﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Osiptel.HECO.BE;
using Osiptel.HECO.DL;

namespace Osiptel.HECO.BL
{
    public class ProyectoGrupoBL : BaseBL
    {
        public int insertar(ProyectoGrupoBE grupo)
        {
            ProyectoGrupoDL oProyectoGrupoDL = new ProyectoGrupoDL();
            try
            {
                return oProyectoGrupoDL.mInsertar(grupo);
            }
            catch (Exception lexcError)
            {
                throw new Exception(lexcError.Message);
            }
            finally
            {
                oProyectoGrupoDL = null;
            }
        }
        public int InsertarGrupoDetalle(List<GrupoDetalleBE> gd, GrupoBE g, ProyectoGrupoBE pg,String user)
        {
            int resultado = 0;
            GrupoBL objGrupoBL = new GrupoBL();
            GrupoDetalleBL objGrupoDetalleBL = new GrupoDetalleBL();
            ProyectoGrupoDL oProyectoGrupoDL = new ProyectoGrupoDL();
            //grupo
            g.UsuCre = user;
            g.Descripcion = "";
            int idGrupo= objGrupoBL.insertar(g);
            resultado = idGrupo;
            
            //proyectoGrupo
            pg.IdGrupo = idGrupo;
            pg.UsuCre = user;
            int idpg = oProyectoGrupoDL.mInsertar(pg);
            int idGrupoDet;            
            GrupoDetalleBE grupoDetBE;
            for (int i = 0; i < gd.Count; i++ )
            {
                gd[i].IdGrupo = idGrupo;
                gd[i].UsuCre = user;
                if (gd[i].P07Clase == 91){ 
                    grupoDetBE = new GrupoDetalleBE();
                    grupoDetBE = objGrupoDetalleBL.ObtenerTotalMontosPorIdProyectoOtros(pg.IdProyecto);
                    gd[i].PrecioTotalMaximo = gd[i].PrecioTotalMaximo * grupoDetBE.PrecioTotalMaximo/100;
                    gd[i].PrecioTotalMinimo = gd[i].PrecioTotalMinimo * grupoDetBE.PrecioTotalMinimo/100;
                }        
                idGrupoDet = objGrupoDetalleBL.insertar(gd[i]);
            }
            return resultado;
        }
    }
}
